package com.dzienniczekwedkarza.database.dbUtils.ORMLite;

import java.sql.SQLException;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
import com.dzienniczekwedkarza.database.models.ORMLite.AtlasRyb;
import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper;
import com.j256.ormlite.support.ConnectionSource;
import com.j256.ormlite.table.TableUtils;


/**
 * @author Rafał Wysogląd 
 * @link   http://code.google.com/p/bazy-danych-2-projekt/wiki/LitePrzygotowanieAndroida
*/

/*Do tworzenia i usuwania tabel używamy statycznych metod createTable oraz dropTable klasy com.j256.ormlite.table.TableUtils. 
Wywołania metod umieszczamy w funkcjach onCreate i onUpdate klasy DatabaseHelper .

Uwaga! Należy pamiętać o zmianie wartości atrybutu DATABASE_VERSION za każdym razem gdy zmieniamy strukturę bazy danych. 
*/



public class DatabaseHelper  extends OrmLiteSqliteOpenHelper {

    private static final String DATABASE_NAME = "ORMLite.db"; // nazwa bazy danych
    private static final int DATABASE_VERSION = 1; // wersja bazy danych - wersję należy zmienić przy każdej zmianie obiektów generujących bazę

	
    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

  
    @Override
	public void onCreate(SQLiteDatabase db, ConnectionSource connectionSource) {
	  	
		try {
			
			Log.i(DatabaseHelper.class.getName(), "Tworzenie bazy danych..");
			TableUtils.createTable(connectionSource, AtlasRyb.class);
		
		} catch (SQLException e) {
			
			Log.e(DatabaseHelper.class.getName(), "Nie można stworzyć bazy danych", e);
			throw new RuntimeException(e);
			
		}
	}
	

	@Override
	public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, int oldVersion, int newVersion) {
		
		try { 
			
			Log.i(DatabaseHelper.class.getName(), "Aktualizacja bazy danych..");	
			TableUtils.dropTable(connectionSource, AtlasRyb.class, true);
			
		} catch (SQLException e) {
			
			Log.e(DatabaseHelper.class.getName(), "Nie można usunąć bazy danych", e);
			throw new  RuntimeException(e);
		}
	
	}
	
	
	@Override
    public void close() {
            super.close();
    }

}
